Skip to content

Prepare clearfetch 1.0.7 release - #49

Merged
bmurdock merged 13 commits into
mainfrom
1.0.7-candidate
Jul 29, 2026
Merged

Prepare clearfetch 1.0.7 release#49
bmurdock merged 13 commits into
mainfrom
1.0.7-candidate

Conversation

@bmurdock

Copy link
Copy Markdown
Owner

Summary

  • harden request normalization, retry snapshots, hook error handling, timeout/abort classification, and response-body lifecycle management
  • add stable query and body replay behavior, cross-realm web-platform support, real Chromium coverage, and TypeScript 5.0 compatibility checks
  • prepare the 1.0.7 package/changelog metadata and strengthen CI, dependency, package, and trusted-publishing guardrails
  • document the updated runtime contracts, security posture, and release process

Why

The release candidate consolidates correctness and reliability fixes found during repository-wide review. The main root causes were mutable caller-owned inputs being reread across attempts, incomplete runtime validation at public boundaries, platform-specific abort/error shapes, and release verification that did not bind every stage to one smoke-tested artifact.

Impact

Consumers get more predictable retries and hooks, stable ConfigError/timeout/abort behavior, safer cross-realm handling, and stronger type compatibility. The package remains ESM-only, has no runtime dependencies or lifecycle scripts, and retains the existing public package surface.

Release readiness

  • package.json, package-lock.json, and CHANGELOG.md agree on 1.0.7
  • 1.0.7 is not currently published and no v1.0.7 tag or GitHub Release exists
  • the branch is 10 commits ahead of and 0 behind current origin/main; local merge simulation is conflict-free
  • the exact retained tarball passed the public-registry npm publish dry-run
  • repository-side npm environment, tag policy, Actions permissions, main protection, vulnerability reporting, and immutable-release settings were verified

Validation

  • npm ci --ignore-scripts --no-audit --registry=https://registry.npmjs.org
  • npm run check:lockfile
  • npm run lint
  • npm test (151 tests; also verified on Node.js 18 and 24 locally)
  • npm run test:browser-like
  • npm run test:browser-real
  • npm run test:types-compat
  • npm run build
  • npm run check:dependency-audit (0 vulnerabilities)
  • npm run check:dependency-signatures (17 verified signatures, 6 attestations)
  • npm run check:package-metadata
  • npm run check:pack-smoke -- --retain
  • npm run check:publish-dry-run -- release-artifact/*.tgz
  • git diff --check

bmurdock added 10 commits July 13, 2026 16:56
- validate query containers and cross-realm URLSearchParams inputs\n- reject non-serializable JSON configuration consistently\n- cancel abandoned response bodies before HTTP retries\n- add regression coverage for the hardened behaviors
- verify annotated release tags are reachable from main\n- add strict and rerunnable publish dry-run modes\n- extend CI coverage through Node.js 24\n- document the release-path check in contributor guidance
- record request validation and retry cleanup semantics\n- clarify package compatibility versus security support\n- document strict and rerunnable release validation\n- correct empty-response guidance for HTTP 304
- snapshot normalized request inputs and replayable bodies across attempts
- handle cross-realm platform values and effective retry eligibility
- reflect client response defaults in public types and regression coverage
- validate lockfile origins, integrity, and install-script scope before installs
- add browser, TypeScript-floor, and packed-artifact guardrails
- publish one verified tarball with isolated authority and provenance checks
- describe stable retry replay, response typing, and runtime constraints
- record package, supply-chain, and exact-artifact release guardrails
- publish the 1.0.7 changelog and contributor verification guidance
- separate hook-visible request context from normalized execution state
- give response hooks independent clones and abort abandoned attempts
- preserve special query keys and cover lifecycle regressions
- move happy-dom coverage outside the default test glob
- keep cross-realm FormData cases in the dedicated browser-like suite
Validate option and default containers, headers, retry fields, and timer bounds. Snapshot query and cross-realm URL inputs, preserve abort classification through response hooks, and cover the behavior across supported Node and browser runtimes.
@socket-security

socket-security Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedplaywright@​1.61.11001001009980
Addedtypescript@​5.0.4100100909690

View full report

Comment thread test/browser-real.browser.ts Fixed
bmurdock added 3 commits July 29, 2026 15:08
- retain response-type inference for configured and extended clients
- cover legacy HttpClient annotations on TypeScript 5.0 and current types
@bmurdock
bmurdock marked this pull request as ready for review July 29, 2026 21:09
@bmurdock
bmurdock merged commit 7057e0c into main Jul 29, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants